在 Julia 中,文字是透過兩個截然不同的架構實體來處理: 32 位元的字元(Char) 基本類型,以及不可變的 UTF-8 編碼的字串(String)。與其他語言中字元即為長度為一的字串不同,Julia 將 字元(Char) 視為一個代表 Unicode 碼點的一等數值類型。
1. 類型層次結構與記憶體
具體的 字元(Char) 是一個 $32$ 位元的基本類型(子類型為 AbstractChar)。內建的 字串(String) (子類型為 AbstractString)支援完整的 Unicode 範圍。雖然一個 字元(Char) 是固定大小, 字串(String) 而字串則是可變寬度;單個字元佔用 1 到 4 個位元組,ASCII 的轉換點出現在 $0x80(128)$ 處。
2. 運算與比較
由於 字元(Char) 代表一個數值碼點,因此可以進行運算。使用 Int('a') 可取得 97,而使用 Char(97) 可取得 'a'。支援字典序比較: 'X' < 'x' 為真,因為在 Unicode 中大寫字母排在小寫字母之前。
| 功能 | 字元('a') | 字串("a") |
|---|---|---|
| 類型 | 字元(Char) | 字串(String) |
| 大小 | 固定 $32$ 位元 | 可變寬度的 UTF-8 |
| 可變動性 | 不適用(值類型) | 否(不可變) |
如 'A' <= 'X' <= 'Y' 會評估為 true 或 false 根據 Unicode 序列決定。
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>